package qc.module.qms.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import qc.common.core.enums.qms.QmsManualTaskStatusEnum;
import qc.common.core.enums.qms.QmsManualTaskTypeEnum;
import qc.common.core.enums.qms.QmsPointTimeSegmentEnum;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * QmsTaskManualWbs
 *
 * @author QuCheng Tech
 * @since 2025/10/27
 */
@Data
@TableName("qms_manual_task_wbs")
public class QmsManualTaskWbs implements Serializable, Cloneable {
    /**
     * 分解ID
     */
    @TableId
    private String wbsid;
    /**
     * 任务ID
     */
    private String taskid;
    /**
     * 任务类型;计算点号数据、转发点号数据、生成报表、导出数据
     */
    private QmsManualTaskTypeEnum tasktype;
    /**
     * 模块/表/系统;任务类型为处理原始数据时存储原始数据表编码，任务类型为转发点号数据时为转发系统编码，任务类型为生成报表或导出数据时为对应模块ID
     */
    private String moduleid;
    /**
     * 点号/站点;点号编码或者原始站点编码
     */
    private String pointid;
    /**
     * 时段类型;点号时段类型或查询模块中的时间时段类型
     */
    private QmsPointTimeSegmentEnum tmseg;
    /**
     * 列名;任务类型为处理原始数据时存储原始数据的列名
     */
    private String columncode;
    /**
     * 数据起始时间;可能是原始数据、点号数据或查询数据时间
     */
    private LocalDateTime databegintm;
    /**
     * 数据截止时间
     */
    private LocalDateTime dataendtm;
    /**
     * 任务状态
     */
    private QmsManualTaskStatusEnum taskstatus;
    /**
     * 执行起始时间;任务执行处理开始时间
     */
    private LocalDateTime execbegintm;
    /**
     * 执行结束时间;任务执行处理结束时间
     */
    private LocalDateTime execendtm;
    /**
     * 执行耗时毫秒数
     */
    private Double execmillis;
    /**
     * 执行处理结果
     */
    private String execresult;
    /**
     * 写入时间
     */
    private LocalDateTime intm;
    /**
     * 是否已发送至消息队列;如果不能成功发送消息到MQ，标记为false，定时获取后再放入MQ
     */
    private Boolean hassend;
    /**
     * 发送至消息队列时间
     */
    private LocalDateTime sendtm;
    /**
     * 取消操作人ID;任务取消/终止操作人ID
     */
    private Integer canceluserid;
    /**
     * 取消操作人名称;任务取消/终止操作人名称
     */
    private String cancelusername;
    /**
     * 最后更新时间
     */
    private LocalDateTime uptm;
}
